Turbo code decoder with modified systematic symbol transition probabilities

ABSTRACT

A feedback control for a turbo decoder controls the feedback between component decoders of the turbo decoder by substituting either a neutral value or a weighted value for the channel transition probabilities utilized by each component decoder during the iterative decoding process. A control switch selects either estimated channel transition probabilities, modifications of these values, or neutral values as the channel transition probabilities utilized by the next component decoder in the subsequent decoding iteration.

BACKGROUND OF THE INVENTION

The present invention relates generally to error-correction coding and,more particularly, to parallel concatenated convolutional coding, i.e.,turbo coding.

A new class of forward error control codes, referred to as turbo codes,offers significant coding gain for power limited communication channels.Typically, turbo codes are generated by using two recursive systematicencoders operating on different permutations of the same informationbits. A subset of the code bits generated by each encoder is transmittedto maintain bandwidth efficiency. Turbo decoding involves an iterativealgorithm in which probability estimates of the information bits thatare derived for one of the code words are fed back to a probabilityestimator for the other code word. Each iteration of processinggenerally increases the reliability of the probability estimates. Thisprocess continues, alternately decoding the two code words until theprobability estimates can be used to make reliable decisions.

The maximum a posteriori (MAP) type algorithm introduced by Bahl, Cocke,Jelinek, and Raviv in “Optimal Decoding of Linear Codes for MinimizingSymbol Error Rate”, IEEE Transactions on Information Theory, March 1974,pp. 284-287, is particularly useful as a component decoder in decodingparallel concatenated convolutional codes, i.e., turbo codes. The MAPalgorithm is used in the turbo decoder to generate a posterioriprobability estimates of the systematic bits in the code word. Theseprobability estimates are used as a priori symbol probabilities for thesecond MAP decoder. Three fundamental terms in the MAP algorithm are:forward and backward state probability functions (the alpha and betafunctions, respectively) and the a posteriori transition probabilities(the sigma function).

It is desirable to control and reduce feedback among component decodersin a MAP decoder in order to improve performance.

SUMMARY OF THE INVENTION

A feedback control for a turbo decoder controls the feedback betweencomponent decoders of the turbo decoder by substituting either a neutralvalue or a weighted value for the channel transition probabilitiesutilized by each component decoder during an iterative decoding process.A control switch selects either estimated channel transitionprobabilities, modifications of these values, or neutral values as thechannel transition probabilities utilized by the next component decoderin the subsequent decoding iteration.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a simple communications system comprising aMarkov source, a memoryless channel and decoder;

FIG. 2 is a block diagram of a turbo decoder in accordance withpreferred embodiments of the present invention;

FIG. 3 is a block diagram of the bit probability estimator of FIG. 2;

FIG. 4 is a flow chart illustrating modification of channel transitionprobability estimates in accordance with preferred embodiments of thepresent invention;

FIG. 5 graphically illustrates a soft limiter with a dead zone at x=½;

FIG. 6 is a block diagram of a turbo decoder in accordance withalternative embodiments of the present invention; and

FIG. 7 is a block diagram of the bit probability estimator of FIG. 6.

DETAILED DESCRIPTION OF THE INVENTION

Summary of the MAP Decoding Algorithm

The maximum a posteriori (MAP) algorithm for decoding linear codes waspublished by Bahl, Cocke, Jelinek, and Raviv, as cited hereinabove.Basically, this algorithm calculates the a posteriori probability ofeach state in a trellis corresponding to a received code wordconditioned on the entire received code word. A variation of thisalgorithm calculates the a posteriori probability of each statetransition in a trellis corresponding to a received code wordconditioned on the received channel information. Since this variation isof particular interest when decoding recursive systematic convolutionalcodes, which are typically utilized in turbo coding, the description ofthe invention will be built around this form of the algorithm. However,the invention also applies to the version of the MAP algorithm thatcalculates a posteriori state probabilities in a straightforward manner.

Consider the simple communication system block diagram of FIG. 1 for thepurpose of describing the MAP algorithm. The source 10 is adiscrete-time, finite-state Markov process, shown as comprising a source11, an encoder 12, and a mapping device 13. As shown, the source'soutput at time t is X_(t) and the corresponding channel 14 output isY_(t), which is provided as the input to a decoder 16. The followingdefinitions are also needed to describe the MAP algorithm. Let

M=the number of distinct states of the Markov source;

m=the index of the Markov source's states {0,1, . . . ,M−1};

S_(t)=state of the Markov source at time t;

S_(t) ^(u)=S_(t), S_(t+1), S_(u), the state sequence of the Markovsource from time t to time u;

X_(t) ^(u)=X_(t), X_(t+1), . . . X_(u), the output sequence of theMarkov source from time t to time u;

Y_(t) ^(u)=Y_(t), Y_(t+1), . . . Y_(u), the output sequence of thechannel from time t to time u, and

L=the length of the source's output sequence.

Furthermore, it is assumed that the Markov source's initial state S₀=0and its final state S_(L)=0.

The channel is noisy and memoryless so that a sequence of the source'soutput symbols X_(t) ^(u) is transformed into a sequence of channeloutputs Y_(t) ^(u) according to the following channel transitionprobabilities.

Pr{Y _(t) ^(u) |X _(t) ^(u) }=Pr{Y _(t) |X _(t)}Pr{Y_(t+1) |X _(t+1)} .. . Pr{Y_(u) |X _(u)}  (1)

The decoder examines the received channel output sequence and estimatesthe a posteriori probabilities of the Markov source's states or statetransitions. The state a posteriori probabilities Pr{S_(t)=m|Y₁ ^(L)}can be written as

Pr{S _(t) =m|Y ₁ ^(L) }=Pr{S _(t) =m; Y ₁ ^(L) }/Pr{Y ₁ ^(L)}  (2)

using the definition of conditional probability. Our notation is asfollows: Pr{A|B} means the conditional probability of event A givenevent B, and Pr{A;B} means the joint probability of events A and B.Similarly, the source's state transition a posteriori probabilities canbe written as

Pr{S _(t−1) =m′; S _(t) =m|Y ₁ ^(L) }=Pr{S _(t−1) =m′; S _(t) =m; Y ₁^(L) }/Pr{Y ₁ ^(L)}.  (3)

It turns out that it is easier to derive an algorithm to calculate thejoint probabilities on the right-hand sides of equations (2) and (3).The desired conditional probabilities can then be obtained by simplydividing these joint probabilities by the constant Pr{Y₁ ^(L)}. Toclarify the derivation, Bahl et al. defined the following probabilityfunctions.

α_(t)(m)=Pr{S _(t) =m; Y ₁ ^(t)}  (4)

β_(t)(m)=Pr{Y _(t+1) ^(L) |S _(t) =m}  (5)

γ_(t)(m′,m)=Pr{S _(t) =m; Y _(t) |S _(t−1) =m′}  (6)

It can be shown that

Pr{S _(t) =m; Y ₁ ^(L)}=α_(t)(m)β_(t)(m) and   (7)

Pr{S _(t−1) =m′; S _(t) =m; Y ₁^(L)}=α_(t−1)(m′)γ_(t)(m′,m)β_(t)(m)  (8)

so all that remains is to calculate the values of α_(t)(m)γ_(t)(m′,m)and β_(t)(m) for all values of m and t. It can be shown that for t=1,2,. . . ,L, α_(t)(m) can be calculated recursively as follows.$\begin{matrix}{{\alpha_{t}(m)} = {\sum\limits_{m^{\prime} = 0}^{M - 1}{{\alpha_{t - 1}\left( m^{\prime} \right)}{\gamma_{t}\left( {m^{\prime},m} \right)}}}} & (9)\end{matrix}$

For t=0, the boundary conditions are α_(t)(0)=1 and α₀(m)=0 for all m≠0.Similarly, β_(t)(m) can be calculated recursively for t=1,2, . . . ,L−1.$\begin{matrix}{{\beta_{t}(m)} = {\sum\limits_{m^{\prime} = 0}^{M - 1}{{\beta_{t + 1}\left( m^{\prime} \right)}{\gamma_{t + 1}\left( {m,m^{\prime}} \right)}}}} & (10)\end{matrix}$

For t=L, the boundary conditions are β_(L)(0)=1 and β_(L)(m)=0 for allm≠0. In the calculation of γ_(t), this quantity may be expanded as

$\begin{matrix}{{\gamma_{t}\left( {m^{\prime},m} \right)} = {\sum\limits_{X}{\Pr \left\{ {S_{t} = {{mS_{t - 1}} = m^{\prime}}} \right\} \Pr \quad \left\{ {{X_{t} = {{XS_{t}} = m}};{S_{t - 1} = m^{\prime}}} \right\} \Pr \left\{ Y_{t} \middle| X \right\}}}} & (11)\end{matrix}$

For the cases of interest to us, the source's mapping of statetransitions to output symbols is deterministic; i.e. there is only onepossible output symbol X for each state transition, so that Pr{X_(t) |S_(t)=m; S_(t−1)=m′}=1 and γ_(t)(m′,m) can be written as

γ_(t)(m′,m)=Pr{S _(t) =m|S _(t−1) =m′}Pr{Y _(t) |X}.  (12)

The calculation of Pr{S_(t−1)=m′; S_(t)=m; Y₁ ^(L)} using the algorithmof Bahl et al. can be summarized as follows.

1. α₀(0)=1 and α₀(m)=0 for all m≠0. β_(L)(0)=1 and β_(L)(m)=0 for allm≠0.

2. As soon as Y_(t) is received, the decoder computes γ_(t)(m′,m) usingequation (12) and α_(t)(m) using equation (9). The calculated values ofα_(t)(m) are stored for all t and m. The calculated values ofγ_(t)(m′,m) are stored for all t and all transitions (m′,m) orcalculated as needed.

3. After the complete sequence of channel outputs Y₁ ^(L) is received,the decoder recursively computes β_(t)(m) using equation (10). When allof the β_(t)(m) have been computed, they can be multiplied by theappropriate α_(t−1)(m′) and γ_(t)(m′,m) to obtain Pr{S_(t−1)=m′;S_(t)=m;Y₁ ^(L)} as in equation (8).

When decoding trellis codes, the Markov source of FIG. 1 can be modeledas comprising a source of information bits, an encoder for the errorcorrecting trellis code, and a mapping device that converts theencoder's output into symbols X_(t), which are transmitted over thechannel.

The term Pr{S_(t)=m|S_(t−1)=m′}, the encoder's conditional stateprobability, in equation (12) is calculated as $\begin{matrix}{{\Pr \left\{ {S_{t} = {\left. m \middle| S_{t - 1} \right. = m^{\prime}}} \right\}} = {\prod\limits_{t = {{{({t - 1})}k} + 1}}^{tk}{\Pr \left\{ {d_{i} = {a_{i}\left( {m^{\prime},m} \right)}} \right\}}}} & (13)\end{matrix}$

for an (n,k,v) code where Pr{d_(i)=a_(i)(m′,m)} is the a prioriprobability that d_(i)=a_(i)(m′,m) and a_(i)(m′,m) is the i^(th) bit ofthe sequence a(m′,m) of k bits that drives the encoder from state m′ tostate m. This equation holds when the code's trellis does not haveparallel branches. (If the code's trellis does have parallel branches,then Pr{S_(t)=m|S_(t−1)=m′} is calculated as the sum of products of bita priori probabilities in which the sum is over all of the sequences ofsource bits a(m′,m) that drive the encoder from state m′ to state m.)

In the decoder, we are interested in event likelihood ratios;specifically, we are interested in Pr{d_(τ)=1|Y₁ ^(L)}/Pr{d_(τ)=0|Y₁^(L)}, where Pr{d_(τ)=i|Y₁ ^(L)} represents the a posteriori probabilitythat data bit d_(τ) from the source is equal to iε (0,1). Here,$\begin{matrix}\begin{matrix}{{\Pr \left\{ {d_{\tau} = \left. 0 \middle| Y_{1}^{L} \right.} \right\}} = \quad {\sum\limits_{{({m^{\prime},m})} \in {A_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = \left. m \middle| Y_{1}^{L} \right.}} \right\}}}} \\{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in {A_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}{\Pr \left\{ Y_{1}^{L} \right\}}}\end{matrix} & (14)\end{matrix}$

In the equation above A_(t)(τ) is the set of all state transitions(m′,m) in the encoder which terminate at time t due to an informationbit d_(τ)=0. Recall that in general there are k source bits encoded intoeach n-bit encoder output symbol so that d_(τ) for indices τ=(t−1)k+1,(t−1)k+2, . . . , tk are associated with the state transition S_(t−1) toS_(t). Also, $\begin{matrix}\begin{matrix}{{\Pr \left\{ {d_{\tau} = \left. 1 \middle| Y_{1}^{L} \right.} \right\}} = \quad {\sum\limits_{{({m^{\prime},m})} \in {B_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = \left. m \middle| Y_{1}^{L} \right.}} \right\}}}} \\{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in {B_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}{\Pr \left\{ Y_{1}^{L} \right\}}}\end{matrix} & (15)\end{matrix}$

In the equation above B_(t)(τ) is the set of all state transitions(m′,m) in the encoder which terminate at trellis level t due to aninformation bit d_(τ)=1. Since we are working with the likelihood ratioPr{d_(τ)=1|Y₁ ^(L)}/Pr{d_(τ)=0|Y₁ ^(L)}, it is not necessary tocalculate Pr{S_(t−1)=m′;S_(t)=m|Y₁ ^(L)}; we may usePr{S_(t−1)=m′;S_(t)=m; Y₁ ^(L)} directly since Pr{Y₁ ^(L)} is common tothe numerator and denominator. Therefore, the desired likelihood ratiofrom the decoder is $\begin{matrix}\begin{matrix}{{\lambda \left( d_{\tau} \right)} = \frac{\Pr \quad \left\{ {d_{\tau} = \left. 1 \middle| Y_{1}^{L} \right.} \right\}}{\Pr \left\{ {d_{\tau} = \left. 0 \middle| Y_{1}^{L} \right.} \right\}}} \\{= \frac{\sum\limits_{{({m^{\prime},m})} \in {B_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}{\sum\limits_{{({m^{\prime},m})} \in {A_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}}\end{matrix} & (16)\end{matrix}$

Since the joint probability Pr{S_(t−1)=m′; S_(t)=m; Y₁ ^(L)} is usedoften herein, the following notation from Bahl et al. is introduced forbrevity.

σ_(t)(m′,m)=Pr{S _(t−1) =m′; S _(t) =m; Y ₁^(L)}=α_(t−1)(m′)γ_(t)(m′,m)β_(t)(m  (17)

When the encoder's input symbols are binary, i.e. k=1, equations (13)through (16) can be simplified since τ=t in this case. The simplifiedequations are presented below.

Pr{S _(t) =m|S _(t−1) =m′}=P{d _(t) =a(m′,m)}, where  (18)

a(m′,m)=the bit value that drives the encoder from state m′ to state m.$\begin{matrix}\begin{matrix}{{\Pr \left\{ {d_{t} = {0Y_{1}^{L}}} \right\}} = \quad {\sum\limits_{{({m^{\prime},m})} \in A_{t}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = \left. m \middle| Y_{1}^{L} \right.}} \right\}}}} \\{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in A_{t}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}{\Pr \left\{ Y_{1}^{L} \right\}}} \\{{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in A_{t}}{\sigma_{t}\left( {m^{\prime},m} \right)}}{\Pr \left\{ Y_{1}^{L} \right\}}},{where}}\end{matrix} & (19)\end{matrix}$

A_(t)=the set of all state transitions (m′,m) which terminate at level tin the encoder due to an information bit d_(t)=0. $\begin{matrix}\begin{matrix}{{\Pr \left\{ {d_{t} = {1Y_{1}^{L}}} \right\}} = \quad {\sum\limits_{{({m^{\prime},m})} \in B_{t}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = \left. m \middle| Y_{1}^{L} \right.}} \right\}}}} \\{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in B_{t}}\left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}{\Pr \left\{ Y_{1}^{L} \right\}}} \\{{= \quad \frac{\sum\limits_{{({m^{\prime},m})} \in B_{t}}{\sigma_{t}\left( {m^{\prime},m} \right)}}{\Pr \left\{ Y_{1}^{L} \right\}}},{where}}\end{matrix} & (20)\end{matrix}$

B_(t)=the set of all state transitions (m′,m) which terminate at trellislevel t in the encoder due to an information bit d_(t)=1.$\begin{matrix}\begin{matrix}{{\lambda \left( d_{t} \right)} = \frac{\Pr \left\{ {d_{t} = \left. 1 \middle| Y_{1}^{L} \right.} \right\}}{\Pr \left\{ {d_{t} = \left. 0 \middle| Y_{1}^{L} \right.} \right\}}} \\{= \frac{\sum\limits_{{({m^{\prime},m})} \in B_{t}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}{\sum\limits_{{({m^{\prime},m})} \in {A_{t}{(\tau)}}}{\Pr \left\{ {{S_{t - 1} = m^{\prime}};{S_{t} = m};Y_{1}^{L}} \right\}}}} \\{= {\frac{\sum\limits_{{({m^{\prime},m})} \in B_{t}}{\sigma_{t}\left( {m^{\prime},m} \right)}}{\sum\limits_{{({m^{\prime},m})} \in A_{t}}{\sigma_{t}\left( {m^{\prime},m} \right)}}.}}\end{matrix} & (21)\end{matrix}$

Description of the Log-MAP Decoder

The MAP decoder algorithm presented earlier requires a large number ofmultiplications. For some implementations wherein a large number ofmultiplications may be impractical, e.g., integrated circuitimplementations, a logarithmic version of the MAP algorithm has beenderived that eliminates all multiplication operations. The log-MAPalgorithm primarily uses additions, table look-ups, and some simplelogic functions. In an integrated circuit implementation of a decoderfor trellis codes, the replacement of multiplications with additionsenables large savings in gate count (die area) and significant increasesin decoding speed. The following is a summary of the basic log-MAPalgorithm.

Equations (7) through (10) become

ln Pr{S _(t) =m; Y ₁ ^(L) }=ln α _(t)(m)+ln β _(t)(m),  (22)

ln Pr{S _(t−1) =m′; S _(t) =m; Y ₁ ^(L) }=ln σ _(t)(m′,m)=ln α_(t−1)(m′)+ln γ _(t)(m′,m)+ln β _(t)(m),  (23) $\begin{matrix}{{{\ln \quad {\alpha_{t}(m)}} = {\ln {\sum\limits_{m^{\prime} = 0}^{M - 1}{\exp \quad \left( {{\ln \quad {\alpha_{t - 1}\left( m^{\prime} \right)}} + {\ln \quad {\gamma_{t}\left( {m^{\prime},m} \right)}}} \right)}}}},{and}} & (24) \\{{\ln \quad {\beta_{t}(m)}} = {\ln {\sum\limits_{m^{\prime} = 0}^{M - 1}{\exp \quad {\left( {{\ln \quad {\beta_{t + 1}\left( m^{\prime} \right)}} + {\ln \quad {\gamma_{t + 1}\left( {m,m^{\prime}} \right)}}} \right).}}}}} & (25)\end{matrix}$

Equations (24) and (25) are derived from equations (9) and (10),respectively, by applying the identity

a·b=exp(ln[a·b])=exp(ln a+ln b)

to the product terms. For example, equation (24) is derived as follows:$\begin{matrix}{{\ln \quad {\alpha_{t}(m)}} = {\ln \quad {\sum\limits_{m^{\prime} = 0}^{M - 1}{{\alpha_{t - 1}\left( m^{\prime} \right)}{\gamma_{t}\left( {m^{\prime},m} \right)}}}}} \\{= {\ln \quad {\sum\limits_{m^{\prime} = 0}^{M - 1}{\exp \quad \left( {\ln \quad\left\lbrack {{\alpha_{t - 1}\left( m^{\prime} \right)}{\gamma_{t}\left( {m^{\prime},m} \right)}} \right\rbrack} \right)}}}} \\{= {\ln \quad {\sum\limits_{m^{\prime} = 0}^{M - 1}{{\exp \left( {{\ln \quad {\alpha_{t - 1}\left( m^{\prime} \right)}} + {\ln \quad {\gamma_{t}\left( {m^{\prime},m} \right)}}} \right)}.}}}}\end{matrix}$

The boundary conditions are now ln α₀(0)=0 and ln α₀(m)=−∞ for all m≠0.Similarly, ln β_(L)(0)=0 and ln β_(L)(m)=−∞ for all m≠0. In a practicalimplementation, a large negative number is substituted for −∞.

The sum of exponential terms can be computed by applying the followingidentity.

ln[exp(a)+exp(b)]=max(a,b)+ln[1+exp(−|a−b|)]  (26)

Computational complexity can be significantly reduced by storing a tableof values for the function ln[1+exp(−|a−b|)] and applying equation (26).

Experimentation has shown that 8 or 16 values of this function providesufficient resolution to prevent performance degradation.

Equation (12) becomes

ln γ _(t)(m′,m)=ln Pr{S _(t) =m|S _(t−1) =m′}+ln Pr{Y _(t) |X}.  (27)

Preferred Embodiments of the Invention

Turbo codes involve a parallel concatenation of two or more systematiccodes. Decoding turbo code words is an iterative operation such that thework in decoding one component code word is used as a priori informationfor decoding another component code word. Iterations proceed a finitenumber of times with the passing of information between decoderscomprising feedback in the decoding process. In accordance withpreferred embodiments of the present invention, this feedback iscontrolled to improve decoder performance, e.g., by decreasing theprobability of error in the decoded bits.

As set forth in the summary hereinabove, some of the fundamental termsin a MAP decoding algorithm are forward and backward stateprobabilities, commonly known as the alpha and beta functions, and aposteriori state transition probabilities, commonly known as the sigmafunctions. Calculations of these probabilities (i.e., the alpha, betaand sigma functions) require symbol transition probabilities, i.e., thegamma functions. From Bahl, Cocke, Jelinek, and Raviv in “OptimalDecoding of Linear Codes for Minimizing Symbol Error Rate”, citedhereinabove, $\begin{matrix}{{\gamma_{t}\left( {m^{\prime},m} \right)} = {\sum\limits_{Xt}{{P_{t}\left( m \middle| m^{\prime} \right)}{q_{t}\left( {\left. X \middle| m^{\prime} \right.,m} \right)}{R\left( Y_{t} \middle| X_{t} \right)}}}} & (28)\end{matrix}$

where t is the symbol index and $\begin{matrix}{{R\left( Y_{t} \middle| X_{t} \right)} = {\prod\limits_{j = 1}^{J}{R\left( Y_{tj} \middle| X_{tj} \right)}}} & (29)\end{matrix}$

where J is the number of bits comprising an encoder output symbol,X_(tj) is the j^(th) bit of symbol X_(t) and Y_(tj) is the j^(th)channel output for received symbol Y_(t), assuming binary signaling.

In a recursive systematic code, a single transition (m′, m) determines aspecific channel symbol X_(t) so that the summation in equation (28) iseliminated and the function q_(t)(X_(t)|m′,m) is identically equal toone. Also, for a (2, 1) code, the channel transition probabilities arecomputed as the product of two one-dimensional transition probabilitiesfor the information and parity bits; that is,

R(X _(t) |Y _(t))=R(Y _(t) |X _(ti))R(Y _(tp) |X _(tp)).  (30)

where X_(ti) is the transmitted symbol corresponding to the informationbit at time t, X_(tp) is the parity symbol corresponding to the paritybit generated at time t, and Y_(ti) and Y_(tp) are the channel outputsin response to X_(ti) and X_(tp), respectively.

Furthermore, in the turbo decoding procedure, the conditional stateprobabilities are determined by the a priori bit probabilities asfollows:

P _(t)(m|m′)=AP _(t)(0) if X _(ti) |m,m′=0  (31)

P _(t)(m|m′)=AP _(t)(1) if X _(ti) |m,m′=1  (32)

where AP_(t)(0) and AP_(t)(1) are the a priori probabilities that theinformation bit at time t is 0 and 1, respectively, so that

γ_(t)(m′,m)=AP _(t)(0)R(Y _(ti)|0)R(Y _(tp) |X _(tp)) if X _(ti)|m,m′=0  (33)

and

γ_(t)(m′,m)=AP _(t)(1)R(Y _(ti)|1)R(Y _(tp) |X _(tp)) if X _(ti)|m,m′=1  (34).

The output of a MAP component decoder is an a posteriori probabilityestimate of the systematic symbols, denoted herein as APP_(t)(0) andAPP_(t)(1) for X_(ti)=0 and X_(ti)=1, respectively. These a posterioriestimates are used as the a priori probabilities AP_(t)(0) and AP_(t)(1)for decoding another component code word. The probability estimates areinitialized to AP_(t)(0)=AP_(t)(1)=0.5, or the equivalent neutral valueif working with the logarithm based algorithm, after which the componentdecoders use the output APP's of the other component decoders as inputAP's.

The gamma values from equation (12) are used in three calculations inthe MAP algorithm, i.e., in the recursions that generate the alpha andbeta state probabilities, and in the sigma calculations. The estimatedchannel transition probabilities are modified in these calculations inorder to control feedback and improve performance in accordance withpreferred embodiments of the present invention.

For one preferred embodiment comprising a linear MAP algorithm, theestimated channel transition probabilities for the received symbolscorresponding to systematic bits initially utilized by the first decoderin its sigma (a posteriori state transition probability) calculations(for the first decoding iteration) are R(Y_(ti)|0)=R(Y_(tj)|1)=0.5. Forsubsequent decoding iterations of component code words comprising theturbo code word, excluding the last iteration, a modified channeltransition probability is calculated for each received symbolcorresponding to a systematic bit for use in the sigma probabilitycalculations, wherein the modified value is a function of the iterationindex. On the last decoding iteration, the unmodified channel transitionprobability is used.

As shown in FIG. 2, blocks 20 represent bit probability estimators forthe first and second component decoders, respectively. Associated turbodecoder interleavers and deinterleavers are represented by the numerals24 and 26, respectively, the received samples Y_(t) are provided to achannel transition probability estimator for R(Y_(t)|0) and R(Y_(t)|1),represented by the numeral 28. The channel transition probabilityestimates and the iteration index are provided as inputs to a modifiedchannel transition probability estimator 30. The outputs of the channeltransition probability estimator 28 and the modified channel transitionprobability estimator 30 are provided as inputs to the bit probabilityestimator 20 along with the a posteriori estimates via deinterleaver 26or interleaver 24, as appropriate, as shown in FIG. 2.

FIG. 3 illustrates the bit probability estimator 20 of the illustratedembodiment of FIG. 2 in more detail. As shown, the bit probabilityestimator 20 comprises an alpha probability calculator 32, a betaprobability calculator 34, a sigma calculator 36, and an AP estimatecalculator 38. A modified channel transition probability selectioncontrol 40 selects, through switches 42, either the channel transitionprobability estimate or a modified channel transition probabilityestimate for the alpha, beta and sigma calculations. The selection ofchannel transition probability estimates or modified estimates for thealpha and beta calculations is independent of the selection of valuesfor the sigma calculations.

In one preferred embodiment, full, i.e., unmodified, channel transitionprobability information is used for all alpha and beta calculations, andneutral channel transition probability values are switched in for allsigma calculations, except for the final iteration for which thefeedback control switch is switched back to full channel transitionprobability information. Feedback is reduced most significantly whenneutral values are inserted.

A compromise between full feedback and the neutral value is provided bya modified channel transition probability value. For the apparatus shownin FIG. 6, a simple modified received symbol value calculation useful inthe linear MAP algorithm for the case of binary unipolar signaling withan average received signal amplitude of 0.5 is as follows:$\begin{matrix}{Y_{ti}^{\prime} = \frac{{Y_{ti} \times N} + {K \times 0.5}}{N + K}} & \text{(35a)}\end{matrix}$

where K is a constant, and N is the iteration number.

It will be obvious to those with ordinary skill in the art that themodification rule of equation (35a) can be easily adapted to binarysignaling in general. For example, an equivalent modification rule forbinary antipodal signaling is $\begin{matrix}{Y_{ti}^{\prime} = {\frac{Y_{ti} \times N}{N + K}.}} & \text{(35b)}\end{matrix}$

Another modified channel transition probability estimate useful ineither the linear MAP algorithm or the log-MAP algorithm that issuitable to implement another preferred embodiment of FIG. 2 iscalculated as a function of the decoding iteration count, as illustratedin the flow chart of FIG. 4. The variables for this procedure are setforth as follows: i represents the iteration count; N_(i) represents thenumber of decoding iterations to be used; and i_(s) represents thestarting iteration index for using a function of the estimated channeltransition probabilities, rather than neutral values, in the γ_(t)(m′,m)terms for state transition probability calculations σ_(t)(m′,m) or inthe γ_(t)(m′,m) terms utilized in the forward and backward stateprobability calculations, α_(t)(m) and β_(t)(m), respectively. Then, foriteration indices i_(s), i_(s)+1, . . . , N_(i), the modified channeltransition probability estimates are functions of the estimated channeltransition probability estimates and iteration index. An exemplary typeof modified channel transition probability estimate calculation isrepresented graphically in FIG. 5 as a modified soft limiter function ƒ.In particular, the soft limiter function ƒ has been modified to allow adead zone in the vicinity of 0.5 when b, a parameter of the function ƒ,is not equal to 0.5. In accordance with preferred embodiments of thepresent invention, parameters a, b and c of the function f are functionsof the iteration index in order to allow more (or, alternatively, less)feedback between component decoders as decoding proceeds.

The flow chart of FIG. 4 illustrates how the parameters, and hence thefunction ƒ, change with iteration index. Specifically, the processillustrated in FIG. 4 represents one preferred embodiment of modifiedchannel transition probability estimator (block 30) of FIG. 2. Theparameter update and channel transition probability estimatemodification process are summarized in the description that follows.

In decision block 50, a test is made to determine whether it is thefirst iteration, i.e., whether i=1. If so, the variables i_(s) N_(p)a(i_(s)), a(N_(i)), b(i_(s)), b(N_(i)), c(i_(s)), and c(N_(i)) areinitialized in block 52. In block 54, a decision is made as to whetherthe starting iteration index (for calculating modified channeltransition probabilities using the function ƒ) is less than the numberof decoding iterations. If so, then Δa, Δb, and Δc are calculated inblock 56 as follows: $\begin{matrix}{{\Delta \quad a} = \frac{{a\left( N_{i} \right)} - {a\left( i_{s} \right)}}{N_{i} - i_{s}}} & (36) \\{{\Delta \quad b} = \frac{{b\left( N_{i} \right)} - {b\left( i_{s} \right)}}{N_{i} - i_{s}}} & (37) \\{{\Delta \quad c} = \frac{{c\left( N_{i} \right)} - {c\left( i_{s} \right)}}{N_{i} - i_{s}}} & (38)\end{matrix}$

If i>i_(s), as determined in block 58, then the parameters a, b and care updated in block 60 before the modified channel transitionprobabilities are calculated in block 62. If i=i_(s), as determined inblock 64, then the process bypasses block 60 and proceeds directly toblock 62. If i<i_(s), then the channel transition probability estimateis set equal to ½ or another neutral value, which is suitable for theapplication of interest, in block 66 for all t and all j.

In one preferred embodiment, full channel transition probabilityinformation is used for all alpha and beta calculations, and modifiedchannel transition probability values, calculated as a function of theiteration count, are switched in for all sigma calculations, except forthe final iteration for which the control switch is switched back toprovide full (i.e., unmodified) channel transition probabilityinformation.

FIG. 6 illustrates an alternative embodiment of a turbo decoder of thepresent invention. As shown, the received symbols and iteration indexare provided as inputs to a modified symbol value calculator 82. Theoutput of the modified symbol value calculator and the received symbolsare provided to a bit probability estimator 80 along with the aposteriori probability estimates via deinterleaver 26 or interleaver 24,as appropriate. In this embodiment, the channel transition probabilitymodifications are generated via a modification of the received symbolvalues.

FIG. 7 illustrates the bit probability estimator 80 of FIG. 6 in moredetail. Switches 92 are controlled by a modified received symbolselection control 90 to select either the received symbol values ormodified received symbol values as inputs to channel transitionprobability estimators 94 for use in the alpha, beta and sigmacalculators, 32, 34, and 36, respectively. Similar to the embodiment ofFIG. 3, the selection of received symbol values or modified receivedsymbol values for the alpha and beta calculations is independent of theselection of values for the sigma calculations.

While the preferred embodiments of the present invention have been shownand described herein, it will be obvious that such embodiments areprovided by way of example only. Numerous variations, changes andsubstitutions will occur to those of skill in the art without departingfrom the invention herein. Accordingly, it is intended that theinvention be limited only by the spirit and scope of the appendedclaims.

What is claimed is:
 1. A method for decoding turbo code words,comprising: iteratively calculating forward and backward stateprobabilities and a posteriori state transition probabilities forcomponent code words of turbo code words according to a MAP decodingprocess; for each received symbol output by a channel in response to thecomponent code words, selecting either channel transition probabilityestimates or a modified channel transition probability estimates forcalculating the forward and backward state probabilities and the aposteriori state transition probabilities, the selecting step forcalculating forward and backward state probabilities being independentof the selecting step for calculating a posteriori state transitionprobabilities.
 2. The method of claim 1, further comprising the step ofutilizing an iteration index and providing modified channel transitionprobability estimates as a function of the iteration index.
 3. Themethod of claim 1 wherein the modified channel transition probabilityestimates are calculated from modified received symbol values asfollows:${{{modified}\quad {received}\quad {symbol}\quad {value}} = \frac{{{received}\quad {symbol}\quad {value} \times N} + {K \times 0.5}}{N + K}},$

where N is the current iteration index and K is a constant.
 4. Themethod of claim 1 wherein the modified channel transition probabilityestimates are calculated from modified received symbol values asfollows:${{{modified}\quad {received}\quad {symbol}\quad {value}} = \frac{{received}\quad {symbol}\quad {value} \times N}{N + K}},$

where N is the current iteration index and K is a constant.
 5. Themethod of claim 1 wherein the modified channel transition probabilityestimates are calculated using a modified soft limiter function.
 6. Themethod of claim 5 wherein the parameters of the modified soft limiterfunction are a function of a decoding iteration index.
 7. The method ofclaim 1 wherein the MAP decoding process comprises a logarithmic MAPdecoding process.
 8. The method of claim 1 wherein the component codewords comprise systematic bits and parity bits, the selecting stepcomprising selecting the channel transition probability estimates forthe received symbols for calculating the forward state and backwardstate probabilities, the selecting step further comprising selectingeither a channel transition probability estimate or a modified channeltransition probability estimate for received symbols corresponding tothe systematic bits and selecting the channel transition probabilityestimates for received symbols corresponding to the parity bits forcalculating the a posteriori state transition probabilities.
 9. Adecoder for decoding turbo code words, comprising: component decodersfor iteratively calculating forward and backward state probabilities anda posteriori state transition probabilities for sequences of receivedsymbols output by a channel in response to component code words of turbocode words according to a MAP decoding process; a selection controlwhich, for each received symbol in the component code words, selectseither channel transition probability estimates or modified channeltransition probability estimates for forward and backward stateprobability calculations and a posteriori state transition probabilitycalculations, the selection control making independent selections forthe forward and backward state probability calculations and the aposteriori state transition probability calculations.
 10. The decoder ofclaim 9, wherein the component decoders utilize an iteration index andprovide modified channel transition probability estimates as a functionof the iteration index.
 11. The decoder of claim 9 wherein the componentdecoders calculate the modified channel transition probability estimatesfrom modified received symbol values as follows:${{{modified}\quad {received}\quad {symbol}\quad {value}} = \frac{{{received}\quad {symbol}\quad {value} \times N} + {K \times 0.5}}{N + K}},$

where N is the current iteration index and K is a constant.
 12. Thedecoder of claim 9 wherein the component decoders calculate the modifiedchannel transition probability estimates from modified received symbolvalues as follows:${{{modified}\quad {received}\quad {symbol}\quad {value}} = \frac{{received}\quad {symbol}\quad {value} \times N}{N + K}},$

where N is the current iteration index and K is a constant.
 13. Thedecoder of claim 9 wherein the component decoders comprise a softlimiter function for calculating the modified channel transitionprobability estimates.
 14. The decoder of claim 13 wherein theparameters of the modified soft limiter function are a function of adecoding iteration index.
 15. The decoder of claim 9 wherein the MAPdecoding process comprises a logarithmic MAP decoding process.
 16. Thedecoder of claim 9 wherein the component code words comprise systematicbits and parity bits, the selection control selects the channeltransition probability estimates for the received symbols for theforward state and backward state probability calculations, and theselection control selects either a channel transition probabilityestimate or a modified channel transition probability estimate for eachreceived symbol corresponding to a systematic bit and a channeltransition probability estimate for each received symbol correspondingto a parity bit for each a posteriori state transition probability.